package com.nbst.dao.mapper.mes;

import java.util.List;
import java.util.Map;

import com.nbst.dao.base.mapper.BaseMapper;
import com.nbst.model.mes.MergeIcstockBillEntry;
import com.nbst.model.wms.PendingOutStockItemEntry;

/**
 * 
 * @ClassName: MergeIcstockBillEntryMapper
 * @Description:合并领料表表体Mapper
 * @author King
 * @date 2019年2月27日
 *
 */
public interface MergeIcstockBillEntryMapper extends BaseMapper<MergeIcstockBillEntry> {
	/**
	 * 批量新增
	 * 
	 * @param list
	 * @return int
	 * @author King
	 * @date 2019年2月27日
	 */
	int insertBatch(List<MergeIcstockBillEntry> list);

	/**
	 * 根据合并领料单id、物料申请单id查询合并领料单分录中的物料
	 * 
	 * @param map
	 * @return List<MergeIcstockBillEntry>
	 * @author King
	 * @date 2019年4月13日
	 */
	List<MergeIcstockBillEntry> findByMergeItem(Map<String, Object> map);

	/**
	 * 根据合并领料id查询还未完成发料的物料信息条数
	 * 
	 * @param id
	 * @return Integer
	 * @author King
	 * @date 2019年4月14日
	 */
	Integer getNotOutStockItemNum(Integer id);

	/**
	 * 根据合并领料表Id获取每种物料对应的仓库ID和已发料数量
	 * 
	 * @param map
	 * @return
	 */
	List<Map<String, Object>> getItemAndQty(Map<String, Object> map);

	/**
	 * 根据合并领料表的ID将表体的已发料数置0，fClosed置1
	 * 
	 * @param map
	 */
	void updateActualQtyById(Map<String, Object> map);

	/**
	 * 根据合并领料单id、物料申请单id查询和物料申请单有关的合并领料单中的物料信息
	 * 
	 * @param map
	 * @return List<Integer>
	 * @author King
	 * @date 2019年10月23日
	 */
	List<Integer> getMergeEntryIDS(Map<String, Object> map);

	/**
	 * 删除指定的关系
	 * 
	 * @param map
	 * @return int
	 * @author King
	 * @date 2019年10月23日
	 */
	int delete(Map<String, Object> map);

	/**
	 * 根据合并领料单id、仓库id获取待发料物料信息
	 * 
	 * @param map
	 * @return List<PendingOutStockItemEntry>
	 * @author King
	 * @date 2020年3月23日
	 */
	List<PendingOutStockItemEntry> getPendingOutStockItemLists(Map<String, Object> map);

	/**
	 * 根据派工单号与物料内码获取合并发料单中的物料发料信息
	 * 
	 * @param map
	 * @return List<MergeIcstockBillEntry>
	 * @author King
	 * @date 2020年5月8日
	 */
	List<MergeIcstockBillEntry> getMergeItemLists(Map<String, Object> map);

	/**
	 * 根据合并领料单关闭已发完料的分录信息
	 * 
	 * @param id
	 * @return Integer
	 * @author King
	 * @date 2020年5月24日
	 */
	Integer closeEntryById(Integer id);

	/**
	 * 
	 * @return List<MergeIcstockBillEntry>
	 * @author King
	 * @date 2020年5月26日
	 */
	List<MergeIcstockBillEntry> getMergeEntrys();

}